package model

import "github.com/jinzhu/gorm"

type ArticleVisit struct {
	*Model
	IsLike    int `json:"is_like"`
	IsCollect int `json:"is_collect"`

	UserId    int `json:"user_id"`
	ArticleId int `json:"article_id"`
}

func (av ArticleVisit) TableName() string {
	return "article_visit"
}

// Create 创建一个访问记录，如果该记录已存在，则取消创建
func (av ArticleVisit) Create(db *gorm.DB) error {
	err := db.First(&av).Error

	if err == gorm.ErrRecordNotFound {
		err = db.Create(&av).Error
	}

	return err
}

func (av ArticleVisit) Like(db *gorm.DB) error {
	av.IsLike = 1
	return db.Save(&av).Error
}

func (av ArticleVisit) Dislike(db *gorm.DB) error {
	av.IsLike = 0
	return db.Save(&av).Error
}
